﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Kcadastro.classes;

namespace Kcadastro.adm
{
    public partial class usuarios_edit : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //TODO: BEGIN Seleciona Link Serviços
            if (this.Master is kcadastro)
            {
                ((kcadastro)this.Page.Master).SelecionaPagina(FW.utils.enumPaginas.NovoUsuario);
            }
            //TODO:END
            masterPageKcad m = Master as masterPageKcad;
            m.idFerr = 6;
            if (Request.QueryString["f"] != null)
            {
                if (Request.QueryString["f"].ToString() == "e")
                    hl_voltar.NavigateUrl = "empresas_edit.aspx";
            }
            if (!IsPostBack)
            {
                precarregar();
                if (Session["IDuuser"] != null)
                {
                    if (Session["IDuuser"].ToString() != "")
                    {
                        bt_cpf.Enabled = false;
                        bt_gravar.Enabled = true;
                        bt_enviarEmail.Enabled = true;
                        tbi_user.Text = Session["IDuuser"].ToString();
                        carregar();
                    }
                    else
                    {
                        bt_cpf.Enabled = true;
                        bt_gravar.Enabled = true;
                        bt_enviarEmail.Enabled = false;
                        //Panel1.Visible = false;
                        tbi_user.Text = "0";
                    }
                
                }
                else
                {
                    bt_cpf.Enabled = true;
                    bt_gravar.Enabled = true;
                    bt_enviarEmail.Enabled = false;
                    //Panel1.Visible = false;
                    tbi_user.Text = "0";
                }
                
            }
        }

        private void precarregar()
        {
            empresas emps = new empresas();
            dd_empresas.DataSource = emps.listarEmpresas();
            dd_empresas.DataTextField = "RS";
            dd_empresas.DataValueField = "PK_IDemp";
            dd_empresas.DataBind();
            emps = null;

            usuarios us = new usuarios();
            dd_grupo.DataSource = us.retornaGrupos();
            dd_grupo.DataTextField = "nome";
            dd_grupo.DataValueField = "PK_IDgrp";
            dd_grupo.DataBind();
            us = null;
        }

        private void carregar()
        {
            usuarios u = new usuarios();
            tb_usuario tbu = u.lerDadosUsuario(Convert.ToInt16(tbi_user.Text));
            tb_cpf.Text = tbu.CPF;
            tb_dtnasc.Text = ((DateTime)tbu.dt_nasc).ToString("dd/MM/yyyy");
            tb_email.Text = tbu.email;
            tb_nomecompleto.Text = tbu.nomecompleto;
            tb_primeironome.Text = tbu.primeironome;
            tb_ultimonome.Text = tbu.sobrenome;
            dd_empresas.SelectedIndex = dd_empresas.Items.IndexOf(dd_empresas.Items.FindByValue(tbu.FK_IDemp.ToString()));
            dd_grupo.SelectedIndex = dd_grupo.Items.IndexOf(dd_grupo.Items.FindByValue(tbu.FK_idgrp.ToString()));
            cb_ativo.Checked = (bool)tbu.ativo;
            bt_enviarEmail.Enabled = true;

            tbu = null;
            u = null;

        }

        private void procurarCPF() // (object state)
        {
            if (usuarios.cpfValido(tb_cpf.Text))
            {
                usuarios users = new usuarios();
                tb_usuario tu = users.lerDadosUsuario(tb_cpf.Text);
                if (tu != null)
                {
                    this.Session["PKID"] = tu.PK_IDuser.ToString();
                    tb_nomecompleto.Text = tu.nomecompleto;
                    tb_primeironome.Text = tu.primeironome;
                    tb_ultimonome.Text = tu.sobrenome;
                    tbi_user.Text = tu.PK_IDuser.ToString();
                    tb_dtnasc.Text = tu.dt_nasc != null ? ((DateTime)tu.dt_nasc).ToString("dd/MM/yyyy") : "";
                    tb_email.Text = string.IsNullOrEmpty(tu.email) ? "" : tu.email;
                    //Panel1.Visible = true;
                    bt_gravar.Enabled = true;
                }
                users = null;

            }
            else
            {
                //cpf inválido
                lt_msg.Text = "CPF Inválido.";
            }

        }

        protected void bt_gravar_Click(object sender, EventArgs e)
        {
            lt_msgcad.Text = "";
            string tipocad = "";// "P1"; // define em que passo do cadastro o usuario está
            if (Session["IDuser"] != null)
                if (Session["IDuser"].ToString() != "")
                    tipocad = "";
            tb_usuario tu = new tb_usuario();
            usuarios users = new usuarios();
            tu.PK_IDuser = Convert.ToInt32(tbi_user.Text);
            DateTime dt;
            if (DateTime.TryParse(FW.utils.dataPoeBarras(tb_dtnasc.Text), out dt))
                tu.dt_nasc = dt;
            tu.email = tb_email.Text;
            //tu.emailvalidado = false;
            //if (tipocad == "P1")
            tu.FK_IDemp = Convert.ToInt16(dd_empresas.SelectedValue);
            tu.FK_idgrp = Convert.ToInt16(dd_grupo.SelectedValue);
            tu.habilitado = true;
            tu.ativo = cb_ativo.Checked;
            tu.emailvalidado = true;
            tu.nomecompleto = tb_nomecompleto.Text;
            tu.primeironome = tb_primeironome.Text;
            tu.senha = "";
            tu.sobrenome = tb_ultimonome.Text;
            tu.tentativas = 0;
            tu.tp_user = 1;
            tu.CPF = tb_cpf.Text;
            
            //if (users.gravarDadosCadstroUsuario(tu, tipocad))
            int idusertemp = users.gravarDadosUsuario(tu);
            if (idusertemp != 0)
            {
                tbi_user.Text = idusertemp.ToString();
                lt_msg.Text = users.MSG;
                if (tipocad == "P1")
                {
                    lt_msgcad.Text = "Um email de confirmação foi enviado para sua caixa postal. Siga as instruções deste email para continuar seu cadastro.";
                }
                lt_msgcad.Text = "Dados gravados com sucesso.";
                precarregar();
                carregar();
            }
            else
            {
                lt_msgcad.Text = users.MSG;
            }
        }

        protected void bt_cpf_Click1(object sender, EventArgs e)
        {
            procurarCPF();
        }

        protected void bt_enviarEmail_Click(object sender, EventArgs e)
        {
            usuarios u = new usuarios();
            
            //tb_usuario tu = u.lerDadosUsuario(Convert.ToInt16(tbi_user.Text));
            u.novaSenha(Convert.ToInt16(tbi_user.Text));
            lt_msgcad.Text = "Um email de confirmação foi enviado para sua caixa postal. Siga as instruções deste email para continuar seu cadastro.";
            //tu = null;
            u = null;
        }
    }
}